Indoor intrusion detection

ABSTRACT

A computer-implemented method, a system, and a computer program product for detecting objects are disclosed. The method can include receiving, by a computer communicatively connected to a plurality of anemometers positioned throughout the space, first sensor data from the plurality of anemometers, creating a baseline profile of airflow in the space based on the first sensor data, and receiving second sensor data from the plurality of anemometers at a different time than the first sensor data. The method can include comparing the second sensor data with the first sensor data to determine first different data, rendering, in response to determining that the second sensor data is different from the first sensor data, a representation of the object using the first different data and first location data related to the first different data, and calculating a vector associated with the object using the first different data and the first location data.

BACKGROUND

The present disclosure relates to anomaly detection, and morespecifically, to anomaly detection based on analysis of airflowmeasurements from a plurality of detectors.

Traditionally, high-value items located in buildings are protected bysecurity measures, for example, to prevent unauthorized intruders fromgaining access thereto. The nature of such items can vary widely (e.g.,money, information, sensitive equipment, etc.), but one form of securitycan be control of physical access to buildings and/or specific areas ofbuildings (e.g., a room or a safe). These prohibited access regions canalso be subject to video surveillance, although such systems oftenconsume considerable amounts of electricity. In some emergencysituations, electrical power may be limited in the building, forexample, by the capacity of backup power supplies. In order to maintainthe operability of more critical building systems, video surveillancesecurity systems may be powered down to reduce power consumption, whichcan increase the vulnerability of the high-value items inside.

SUMMARY

A computer-implemented method, a system, and a computer program productfor detecting an object within a space are disclosed. According to oneembodiment, the method includes receiving, by a computer communicativelyconnected to a plurality of anemometers positioned throughout the space,first sensor data from the plurality of anemometers, creating a baselineprofile of airflow in the space based on the first sensor data, andreceiving second sensor data from the plurality of anemometers at adifferent time than the first sensor data. The method also includescomparing the second sensor data with the first sensor data to determinefirst different data, rendering, in response to determining that thesecond sensor data is different from the first sensor data, arepresentation of the object using the first different data and firstlocation data related to the first different data, and calculating avector associated with the object using the first different data and thefirst location data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a data center, in accordance with anembodiment of the present disclosure.

FIG. 2 is a perspective view down an aisle of the data center, inaccordance with an embodiment of the present disclosure.

FIG. 3 is a method of initializing, recalibrating, and detecting objectsin the data center, in accordance with an embodiment of the presentdisclosure.

FIG. 4 is a top view of the data center, in accordance with anembodiment of the present disclosure.

FIG. 5 is a side view of the data center, in accordance with anembodiment of the present disclosure.

FIG. 6 is a side view of the data center showing a person walking acrossit, in accordance with an embodiment of the present disclosure.

FIG. 7 is a side view of the data center showing a rendering of thedetection of the person in FIG. 6 , in accordance with an embodiment ofthe present disclosure.

FIG. 8 is a top view of the data center showing a rendering of thetracking of the person in FIG. 6 , in accordance with an embodiment ofthe present disclosure.

FIG. 9 is a method of tracking an object and rendering the object in adisplay, in accordance with an embodiment of the present disclosure.

FIG. 10 shows a high-level block diagram of an example computer systemthat can be used in implementing embodiments of the present disclosure.

FIG. 11 shows a cloud computing environment, in accordance with anembodiment of the present disclosure.

FIG. 12 shows abstraction model layers, in accordance with an embodimentof the present disclosure.

DETAILED DESCRIPTION

Various embodiments of the present disclosure are described herein withreference to the related drawings. Alternative embodiments can bedevised without departing from the scope of the present disclosure. Itis noted that various connections and positional relationships (e.g.,over, below, adjacent, etc.) are set forth between elements in thefollowing description and in the drawings. These connections and/orpositional relationships, unless specified otherwise, can be direct orindirect, and the present disclosure is not intended to be limiting inthis respect. Accordingly, a coupling of entities can refer to either adirect or an indirect coupling, and a positional relationship betweenentities can be a direct or indirect positional relationship.

The following definitions and abbreviations are to be used for theinterpretation of the claims and the specification. As used herein, theterms “comprises,” “comprising,” “includes,” “including,” “has,”“having,” “contains,” or “containing,” or any other variation thereof,are intended to cover a non-exclusive inclusion. For example, acomposition, a mixture, process, method, article, or apparatus thatcomprises a list of elements is not necessarily limited to only thoseelements but can include other elements not expressly listed or inherentto such composition, mixture, process, method, article, or apparatus. Inaddition, any numerical ranges included herein are inclusive of theirboundaries unless explicitly stated otherwise.

For purposes of the description hereinafter, the terms “upper,” “lower,”“right,” “left,” “vertical,” “horizontal,” “top,” “bottom,” andderivatives thereof shall relate to the described structures andmethods, as oriented in the drawing figures. The terms “overlying,”“atop,” “on top,” “positioned on,” or “positioned atop” mean that afirst element, such as a first structure, is present on a secondelement, such as a second structure, wherein intervening elements suchas an interface structure can be present between the first element andthe second element.

FIG. 1 is a perspective view of data center 100. FIG. 2 is a perspectiveview down aisle 108 of data center 100. FIGS. 1 and 2 will now bediscussed in conjunction with one another.

In the illustrated embodiment, data center 100 is an enclosed space,such as an interior room inside a building, where there is a relativelysmall number of people entering, exiting, and occupying the space. Datacenter 100 includes a plurality of server racks 102, heating,ventilation, and air conditioning (HVAC) system 104, and HVAC ducts 106.Server racks 102 are arranged in rows across data center 100 and areseparated by aisles 108. Some of ducts 106 are positioned to deliver airfrom HVAC system 104 from one side of data center 100 and down aisles108. This air can heat and/or cool server racks 102, and then it isreturned to HVAC system 104 via some of ducts 106 that are positioned onthe other side of data center 100. Such a configuration can provide anenvironment with steady-state airflow(s) that can be measured and reliedupon. While data center 100 is shown as the exemplary enclosed space,the present disclosure can be applied in other enclosed spaces withforced airflow, such as a bank vault.

In the illustrated embodiment, data center 100 further includes securitysystem 110 to control access to and monitor conditions inside datacenter 100. Security system 110 can be a security information and eventmanagement (SIEM) system, such as, for example, IBM® QRadar®. Securitysystem 110 is communicatively connected to object detection system (ODS)112, which is a system that can detect and track objects inside datacenter 100. ODS 112 includes curator 114 and a plurality of anemometers116. Anemometers 116 are spaced throughout data center 100, with some ofanemometers 116 being connected to poles 118, while other anemometers116 are connected to the walls, to server racks 102, on or below thefloor, or on or above the ceiling of data center 100. Curator 114includes an address database that correlates each anemometer 116 with athree-dimensional (X, Y, Z) coordinate position in data center 100. Someor all of anemometers 116 can have an inconspicuous appearance and/or beconcealed to inhibit detection by people inside data center 100.

In the illustrated embodiment, each anemometer 116 is communicativelyconnected to curator 114, for example, via a wireless connection suchas, for example, Long Range (LoRa®) or Sigfox™ communications in alow-power wide-area network (LPWAN). Such communications can beformatted according to a variety of protocols, such as, for example,DASH7 Alliance Protocol (D7A) or LoRaWAN®. Each anemometer 116 canmeasure the speed and/or direction of local airflow in real-time, andthe measurements therefrom can be sent to curator 114. In someembodiments, the airflow is solely originating from some of ducts 106,but in other embodiments, at least some of the airflow originates frompoles 118 (i.e., each pole 118 is a duct that provides airflow past eachanemometer 116, respectively). In addition, each anemometer 116 caninclude its own battery (not shown), which can be charged by extractingenergy from the airflow in data center 100. Thereby, curator 114 canmonitor airflow throughout data center 100 and check for anomalies thatmay indicate the presence of an object (such as a person or a piece ofequipment). This information can be forwarded to security system 110,which can then choose whether to sound an alarm, and if so, determinewhat severity of alarm should be indicated. This decision can beinfluenced by other information that security system 110 has, such as,for example, whether a door or window in the data center is open or thecurrent number of people that are authorized to be in data center 100.

FIG. 3 shows method 300 of initializing, recalibrating, and detectingobjects in data center 100. During the discussion of method 300, some ofthe features shown in FIGS. 1 and 2 will be included using theirrespective reference numerals. In the illustrated embodiment, atoperation 302, anemometers 116 (and poles 118) are placed in data center100 and communicatively connected to curator 114. At operation 304,curator 114 creates the address database using positional data for eachanemometer 116 from, for example, the installer of the anemometers.

In the illustrated embodiment, at operation 306, ODS 112 is calibrated.Operation 306 can include putting data center 100 in a steady statecondition for a period of time. Such a steady state can include holdingthe HVAC system 104 at a known steady state and excluding people fromdata center 100. During operation 306, curator 114 can collect data fromanemometers 116 until there is a sufficient amount of informationcollected to develop a profile for what the airflow in data center 100should look like when server racks 102 are installed, but no people arepresent. Such a profile can be comprised of an average value and/or anoperational range of values for each anemometer 116. Such a profile caninclude other information such as, for example, HVAC parameters, day,date, month, and/or current weather data (e.g., outside temperature,wind, precipitation, humidity, etc.). This information can be used tocreate and store multiple different baseline profiles for differentconditions. For example, the airflow in data center 100 can havedifferent characteristics when HVAC system 104 is heating data center100 compared to when HVAC system 104 is cooling data center 100 despitethe same equipment layout and lack of people being present in datacenter 100.

During operation 308, data center 100 is monitored by ODS 112 using anappropriate airflow profile. In some embodiments, a tolerance level isused when analyzing the airflow values for each anemometer 116 and/orfor the array of anemometers 116 as a whole. For example, a 20% or 30%deviation from expected airflow can be deemed acceptable in operation310. If an anomaly in the airflow in data center 100 is not found inoperation 310, then data center 100 is continued to be monitored atoperation 308. If an anomaly is found in operation 310, then method 300advances to operation 312 where ODS 112 consults with staff (e.g., via acomputer interface) or other equipment associated with data center 100(e.g., HVAC system 104, security system 110, etc. via electronic machinecommunication). This consultation operation can allow ODS 112 to gatherinformation about why the anomaly may have taken place. At operation314, it is determined whether relevant information has been gathered inoperation 312. If so, then method 300 advances to operation 316, but ifnot, then method 300 advances to operation 318.

There can be several types of relevant information that can be gatheredat operation 312 and used in operation 316 for determining whetherrecalibration and/or alarming are appropriate. While alarming wouldalert security system 110 of a potential intrusion into data center 100,recalibration would create a new airflow profile for use in monitoringdata center 100. In general, recalibration can be appropriate when theairflow conditions in data center 100 will be different for an extendedperiod of time (e.g., more than five minutes, more than an hour, morethan a year, permanently, etc.) in a predictable and permitted manner.For example, if security system 110 informs ODS 112 that a door to datacenter 100 has been opened, then ODS 112 may ignore the airflow datanear the door (or all of the airflow data) for as long as the door isopened (or for a predetermined amount of time (e.g., thirty seconds), orfor a predetermined amount of time after the door has been closed (e.g.,five seconds)). In such a situation, recalibration and/or alarming wouldnot be appropriate because the anomaly would not last long and using theassumption that if the door was improperly opened, then security system110 would originate an alarm instead of ODS 112. For another example, ifHVAC system 104 informs ODS 112 that the fan speed has changed, thencurator 114 can switch the profile that it is using to analyze theairflow measurements to a more appropriate profile. In such a situation,recalibration and/or alarming would be appropriate. For yet anotherexample, ODS 112 can be connected to weather information (e.g., usingthe Internet), and if ODS 112 receives a notification of a significantchange in weather, then curator 114 can switch the profile to a moreappropriate profile. In such a situation, recalibration and/or alarmingwould be appropriate. For yet another example, ODS 112 can prompt aresponse from security staff as to whether HVAC system 104 has beenaltered or had maintenance performed. In such a situation, recalibrationand/or alarming would be appropriate. For yet another example, ODS 112can prompt a response from security staff as to whether new equipmenthas been installed in data center 100 since that could change thebaseline airflow in at least a portion of data center 100. In such asituation, recalibration and/or alarming would be appropriate.Similarly, ODS 112 can prompt a response from security staff as to thenumber of permitted people can be in data center 100 at a given time todetermine whether the anomalies are expected or not. In the former suchsituation, recalibration would not be appropriate, but in the latter asituation, recalibration and/or alarming would be appropriate.

Then, method 300 advances to operation 318, wherein the size of theanomaly is determined. Operation 318 can be performed, for example, byanalyzing changes in the readings of anemometers 116. If any of themeasurements of anemometers 116 have changed significantly, especiallyin separate areas of data center 100, that can indicate that there is achange in overall conditions and/or configuration of data center 100. Ifthere is an overall change in data center 100, then recalibration of ODS112 can occur at operation 306 to prevent a false alarm from beingraised. If only a concentrated and/or a small number of anemometers 116show different readings, that can indicate that an object (e.g., aperson or a piece of equipment) is present in data center 100 that wasnot there before. This can be especially true if the affectedanemometers 116 are in an area the corresponds to the size of a person.

Operation 320 determines if the anomaly is recognized by curator 114 assomething other than an object (e.g., an intruder). This can be true if,for example, the new airflow pattern a substantially similar to apreviously existing profile. If so, then curator 114 can switch to thatprofile, and monitoring can resume at operation 308. If not, thensecurity system 110 can be alerted to the presence of an unidentified,potentially unpermitted object present in data center 100 at operation322. In situations where only a single anemometer 116 experiences ananomaly, the alert can indicate a potential hardware/communication faultrelated to that specific anemometer 116. Furthermore, the data from ODS112 can be saved for reference and analysis in the future.

FIG. 4 is a top view of data center 100. FIG. 5 is a side view of datacenter 100. FIGS. 4 and 5 will now be discussed in conjunction with oneanother.

In the illustrated embodiment, the array of anemometers 116 in ODS 112constructs a virtual grid 420 of vertices (e.g., vertex 422) inthree-dimensional space (shown using the X, Y, and Z axes indicators).These vertices represent distinct monitoring locations throughout datacenter 100. In some embodiments, the presence of an airflow anomaly at aparticular vertex is determined using selected anemometers 116 alongvirtual grid 420. For example, airflow values from anemometers 116-1 (inthe floor), 116-2 (on the left side in FIG. 4 ), and 116-3 (on the rightside in FIG. 4 , across from 116-2) can be used to determine whetherthere is an anomaly at vertex 422, and anemometers 116-4 and 116-5 canalso be used given that they are along lines in grid 420 that intersectvertex 422 (despite being relatively distal from vertex 422). Theairflow values can be weighted, for example, based on their proximity tovertex 422 to generate an amalgamated value representing the presence orabsence of an object at vertex 422.

In some embodiments, the presence of an airflow anomaly at a particularvertex is determined using proximate anemometers 116. For example,airflow values from anemometers 116-1-116-3 and 116-6-116-15. Theairflow values can be weighted, for example, based on their proximity tovertex 422, and extra weight may be given to anemometers 116-1-116-3 forbeing along the lines of grid 420 that intersect vertex 422. In someembodiments, some or all of anemometers 116 can be oriented to senseairflow from a particular direction. In such embodiments, grid 420 mayhave a non-orthogonal configuration and may even be irregular (i.e.,non-uniform spacing between vertices).

In general, the resolution of ODS 112 can be adjusted by increasing ordecreasing the granularity of grid 420. This can occur by increasing ordecreasing the number of anemometers 116 in data center 100. Forexample, for a moderate level of granularity, anemometers 116 can bespaced 0.6 meters (m) apart. For another example, for a fine level ofgranularity, anemometers 116 can be spaced 0.3 m apart. For anotherexample, for a coarse level of granularity, anemometers 116 can bespaced 0.9 m apart.

As stated above, in some embodiments, poles 118 (shown in FIG. 2 ) areducts for airflow past their respective anemometers 116. In someembodiments, data center 100 does not include ducts 106 (shown in FIG. 1), but instead, the flow of air from HVAC system 104 (shown in FIG. 1 )is expelled from poles 118 on one side of aisle 108 and is collected bypoles 118 on the opposite side of aisle 108. In such embodiments,anemometers 116 are paired (e.g., anemometer 116-2 and 116-3) and canfunction similarly to a laser grid detection system.

FIG. 6 is a side view of data center 100 showing person 424 walkingacross it. In the illustrated embodiment, person 424 moves past serverrack 102-1 and 102-2 and then stops in front of server rack 102-3. Asdiscussed previously, the presence of person 424 can be detected by ODS112 (shown in FIG. 1 ) due to the airflow anomalies generated by person424 disturbing the airflow profile in data center 100.

FIG. 7 is a side view of data center rendering 700 showing renderedobject 724 that represents person 424 in FIG. 6 . Data center rendering700 can further include rendered server racks 702-1, 702-2, and 702-3,which can exist in data center rendering 700, for example, by beingdrawn in by a user. Rendered server racks 702 can provide points ofreference for security personnel when reviewing data center rendering700, for example, on a security monitor screen.

In the illustrated embodiment, rendered object 724 has a somewhatamorphous appearance because the array of anemometers 116 (shown inFIGS. 4 and 5 ) is not granular enough to provide a detailed shape ofperson 424 (shown in FIG. 6 ). Instead, rendered object 724 is a generalsilhouette having a similar size to person 424. In some embodiments,rendered object 724 is generated using a smoothing algorithm such as,for example, a Bézier curve and/or a NURBS (non-uniform rationalB-spline) curve, which can spline the appearance of rendered object 724if grid 420 (shown in FIGS. 4 and 5 ) has a relatively small number ofvertices.

Rendered object 724 does not have the fine detail of a typical videoimage in terms of the features of person 424, but rendered object 724can give security personnel a decent idea of the size and shape ofperson 424, regardless of whether person 424 is moving or stationary.Furthermore, the lack of visual detail provided by ODS 112 would beadvantageous in certain implementations. For example, if anestablishment desires security, but clientele would prefer privacyand/or anonymity, ODS 112 could fulfill both requirements.

FIG. 8 is a top view of data center rendering 700 showing rendered path726 that rendered object 724 has taken since entering data center 100(shown in FIG. 1 ). Path 726 can be generated by analyzing airflowmeasurements over time, which allows for person 424 (shown in FIG. 6 )to be tracked through data center 100 (shown in FIG. 1 ). ODS 112 (shownin FIG. 1 ) can then process, store, and display this data as datacenter rendering 700. Because the measurements are analyzed over time,ODS 112 can determine not only the position and size of an object (suchas person 424) but also its velocity and direction (a.k.a., theirmovement vector).

The size, position, velocity, and direction can also be used to assistin identifying what an object is, for example, using curator 114 (shownin FIG. 1 ). It can also be used to track multiple objects in datacenter 100, for example, in case two objects pass by each other. Inaddition, path 726 can be stored along with its corresponding time datafor record keeping purposes.

FIG. 9 shows method 900 of tracking an object and rendering arepresentation of object 424 in a display. During the discussion ofmethod 900, some of the features shown in FIGS. 1-8 will be includedusing their respective reference numerals. In the illustratedembodiment, in operation 902, data center 100 is rendered as data centerrendering 700. At operation 904, an airflow data set is received bycurator 114. At operation 906, the airflow data set is compared to thebaseline profile of the expected airflow data to determine if any of themeasurements are different. Whether there is an anomaly present or notis determined at operation 908. If not, then method 900 returns tooperation 904. If so, then method 900 advances to operation 910. Inoperation 910, the anomalies are analyzed to determine the size andshape of object 424 in data center 100, and rendered object 724 isdisplayed in data center rendering 700 to represent object 424.

At operation 912, a subsequent airflow data set is received by curator114. At operation 914, the new airflow data set is compared to theprevious airflow data set and/or to the baseline profile to determine ifany of the measurements are different. Whether there is still an anomalypresent or not is determined at operation 916. If not, then method 900returns to operation 902 and ceases displaying object 424. If so, thenmethod 900 advances to operation 918. In operation 918, the anomaliesare analyzed to determine whether the size and/or shape of object 424has changed. If not, then method 900 returns to operation 910. If so,then method 900 advances to operation 920. In operation 920, renderedobject 724 is rerendered and displayed with the new position as well asa new size and/or shape, if appropriate. In operation 922, an objectvector is calculated for the speed and direction of movement of object424. In operation 924, rendered path 726 is generated and stored, andcurator 114 awaits receipt of another airflow data set at operation 912.

Referring now to FIG. 10 , shown is a high-level block diagram of anexample computer system (i.e., computer) 11 that may be used inimplementing one or more of the methods or modules, and any relatedfunctions or operations, described herein (e.g., using one or moreprocessor circuits or computer processors of the computer), inaccordance with embodiments of the present disclosure. For example,computer system 11 can be used for curator 114 (shown in FIG. 1 ). Insome embodiments, the components of the computer system 11 may compriseone or more CPUs 12, a memory subsystem 14, a terminal interface 22, astorage interface 24, an I/O (Input/Output) device interface 26, and anetwork interface 29, all of which may be communicatively coupled,directly or indirectly, for inter-component communication via a memorybus 13, an I/O bus 19, and an I/O bus interface unit 20.

The computer system 11 may contain one or more general-purposeprogrammable central processing units (CPUs) 12A, 12B, 12C, and 12D,herein generically referred to as the processor 12. In some embodiments,the computer system 11 may contain multiple processors typical of arelatively large system; however, in other embodiments, the computersystem 11 may alternatively be a single CPU system. Each CPU 12 mayexecute instructions stored in the memory subsystem 14 and may compriseone or more levels of on-board cache.

In some embodiments, the memory subsystem 14 may comprise arandom-access semiconductor memory, storage device, or storage medium(either volatile or non-volatile) for storing data and programs. In someembodiments, the memory subsystem 14 may represent the entire virtualmemory of the computer system 11 and may also include the virtual memoryof other computer systems coupled to the computer system 11 or connectedvia a network. The memory subsystem 14 may be conceptually a singlemonolithic entity, but, in some embodiments, the memory subsystem 14 maybe a more complex arrangement, such as a hierarchy of caches and othermemory devices. For example, memory may exist in multiple levels ofcaches, and these caches may be further divided by function so that onecache holds instructions while another holds non-instruction data, whichis used by the processor or processors. Memory may be furtherdistributed and associated with different CPUs or sets of CPUs, as isknown in any of various so-called non-uniform memory access (NUMA)computer architectures. In some embodiments, the main memory or memorysubsystem 14 may contain elements for control and flow of memory used bythe processor 12. This may include a memory controller 15.

Although the memory bus 13 is shown in FIG. 10 as a single bus structureproviding a direct communication path among the CPUs 12, the memorysubsystem 14, and the I/O bus interface 20, the memory bus 13 may, insome embodiments, comprise multiple different buses or communicationpaths, which may be arranged in any of various forms, such aspoint-to-point links in hierarchical, star or web configurations,multiple hierarchical buses, parallel and redundant paths, or any otherappropriate type of configuration. Furthermore, while the I/O businterface 20 and the I/O bus 19 are shown as single respective units,the computer system 11 may, in some embodiments, contain multiple I/Obus interface units 20, multiple I/O buses 19, or both. Further, whilemultiple I/O interface units are shown, which separate the I/O bus 19from various communications paths running to the various I/O devices, inother embodiments, some or all of the I/O devices may be connecteddirectly to one or more system I/O buses.

In some embodiments, the computer system 11 may be a multi-usermainframe computer system, a single-user system, or a server computer orsimilar device that has little or no direct user interface but receivesrequests from other computer systems (clients). Further, in someembodiments, the computer system 11 may be implemented as a desktopcomputer, portable computer, laptop or notebook computer, tabletcomputer, pocket computer, telephone, smart phone, mobile device, or anyother appropriate type of electronic device.

In the illustrated embodiment, memory subsystem 14 further includesobject detection software 30. The execution of object detection software30 (for example, using an execution module) enables computer system 11to perform one or more of the functions described above, for example, todetect and track objects and communicate with other equipment and staff.

It is noted that FIG. 10 is intended to depict representative componentsof an exemplary computer system 11. In some embodiments, however,individual components may have greater or lesser complexity than asrepresented in FIG. 10 , components other than or in addition to thoseshown in FIG. 10 may be present, and the number, type, and configurationof such components may vary.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a computer, or other programmable data processing apparatusto produce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks. These computerreadable program instructions may also be stored in a computer readablestorage medium that can direct a computer, a programmable dataprocessing apparatus, and/or other devices to function in a particularmanner, such that the computer readable storage medium havinginstructions stored therein comprises an article of manufactureincluding instructions which implement aspects of the function/actspecified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be accomplished as one step, executed concurrently,substantially concurrently, in a partially or wholly temporallyoverlapping manner, or the blocks may sometimes be executed in thereverse order, depending upon the functionality involved. It will alsobe noted that each block of the block diagrams and/or flowchartillustration, and combinations of blocks in the block diagrams and/orflowchart illustration, can be implemented by special purposehardware-based systems that perform the specified functions or acts orcarry out combinations of special purpose hardware and computerinstructions.

It is to be understood that although this disclosure includes a detaileddescription on cloud computing, implementation of the teachings recitedherein are not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g., networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported, providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based e-mail).The consumer does not manage or control the underlying cloudinfrastructure including network, servers, operating systems, storage,or even individual application capabilities, with the possible exceptionof limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure that includes anetwork of interconnected nodes.

Referring now to FIG. 11 , illustrative cloud computing environment 50is depicted. As shown, cloud computing environment 50 includes one ormore cloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 11 are intended to be illustrative only and that computing nodes10 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring now to FIG. 12 , a set of functional abstraction layersprovided by cloud computing environment 50 (FIG. 11 ) is shown. Itshould be understood in advance that the components, layers, andfunctions shown in FIG. 12 are intended to be illustrative only andembodiments of the invention are not limited thereto. s depicted, thefollowing layers and corresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture-based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may include applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and object detection system module 96.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A computer-implemented method for detecting anobject within a space, the computer-implemented method comprising:receiving, by a computer communicatively connected to a plurality ofanemometers positioned throughout the space, first sensor data from theplurality of anemometers; creating a baseline profile of airflow in thespace based on the first sensor data; receiving second sensor data fromthe plurality of anemometers at a different time than the first sensordata; comparing the second sensor data with the first sensor data todetermine first different data; rendering, in response to determiningthat the second sensor data is different from the first sensor data, arepresentation of the object using the first different data and firstlocation data related to the first different data; and calculating avector associated with the object using the first different data and thefirst location data.
 2. The computer-implemented method of claim 1,wherein calculating the vector further comprises: receiving third sensordata from the plurality of anemometers; comparing the third sensor datawith the second sensor data to determine second different data; andrerendering the representation using the second different data andsecond location data related to the second different data.
 3. Thecomputer-implemented method of claim 1, wherein the first location datacomprises three-dimensional information that indicates locations in thespace that each of the first different data represents.
 4. Thecomputer-implemented method of claim 1, further comprising: receiving,by the computer, address data comprising three-dimensional informationthat indicates locations of each of the plurality of anemometers.
 5. Thecomputer-implemented method of claim 4, further comprising: constructinga virtual grid of vertices representing locations in the space betweeneach of the plurality of anemometers using the address data.
 6. Thecomputer-implemented method of claim 5, wherein each vertex in thevirtual grid represents an amalgamation of weighted sensor data from oneor more of the plurality of anemometers.
 7. The computer-implementedmethod of claim 1, wherein the different data represents interruptionsin the baseline profile of airflow in the space.
 8. A system fordetecting an object in a space, the system comprising: a plurality ofanemometers positioned throughout the space; a computer communicativelyconnected to the plurality of anemometers, the computer including aprocessor configured to: receive first sensor data from the plurality ofanemometers; create a baseline profile of airflow in the space based onthe first sensor data; receive second sensor data from the plurality ofanemometers at a different time than the first sensor data; compare thesecond sensor data with the first sensor data to determine firstdifferent data; render, in response to determining that the secondsensor data is different from the first sensor data, a representation ofthe object using the first different data and first location datarelated to the first different data; and calculate a vector associatedwith the object using the first different data and the first locationdata.
 9. The system of claim 8, wherein calculating the vector furtherincludes the processor being configured to: receive third sensor datafrom the plurality of anemometers; compare the third sensor data withthe second sensor data to determine second different data; and rerenderthe representation using the second different data and second locationdata related to the second different data.
 10. The system of claim 8,wherein the first location data comprises three-dimensional informationthat indicates locations in the space that each of the first differentdata represents.
 11. The system of claim 8, wherein the processor isfurther configured to: receive address data comprising three-dimensionalinformation that indicates locations of each of the plurality ofanemometers.
 12. The system of claim 11, wherein the processor isfurther configured to: construct a virtual grid of vertices representinglocations in the space between each of the plurality of anemometersusing the address data.
 13. The system of claim 12, wherein each vertexin the virtual grid represents an amalgamation of weighted sensor datafrom one or more of the plurality of anemometers.
 14. The system ofclaim 8, wherein the different data represents interruptions in thebaseline profile of airflow in the space.
 15. A computer program productfor detecting an object in a space, the computer program productcomprising a computer readable storage medium having programinstructions embodied therewith, the program instructions executable bya processor to cause the processor to: receive, by a computercommunicatively connected to a plurality of anemometers positionedthroughout the space, first sensor data from the plurality ofanemometers; create a baseline profile of airflow in the space based onthe first sensor data; receive second sensor data from the plurality ofanemometers at a different time than the first sensor data; compare thesecond sensor data with the first sensor data to determine firstdifferent data; render, in response to determining that the secondsensor data is different from the first sensor data, a representation ofthe object using the first different data and first location datarelated to the first different data; and calculate a vector associatedwith the object using the first different data and the first locationdata.
 16. The computer program product of claim 15, wherein calculatingthe vector further includes the processor being configured to: receivethird sensor data from the plurality of anemometers; compare the thirdsensor data with the second sensor data to determine second differentdata; and rerender the representation using the second different dataand second location data related to the second different data.
 17. Thecomputer program product of claim 15, wherein the first location datacomprises three-dimensional information that indicates locations in thespace that each of the first different data represents.
 18. The computerprogram product of claim 15, wherein the processor is further configuredto: receive, by the computer, address data comprising three-dimensionalinformation that indicates locations of each of the plurality ofanemometers.
 19. The computer program product of claim 18, wherein theprocessor is further configured to: construct a virtual grid of verticesrepresenting locations in the space between each of the plurality ofanemometers using the address data.
 20. The computer program product ofclaim 19, wherein each vertex in the virtual grid represents anamalgamation of weighted sensor data from one or more of the pluralityof anemometers.